package com.bt.lms.service;

import com.bt.lms.bo.QueryCourseCondition;
import com.bt.lms.entity.page.Page;
import com.bt.lms.entity.CourseInfo;


/**
 * 课程信息模块
 *
 * @author 李鹏
 */
public interface CourseInfoService {

    /**
     * 新增课程功能
     *
     * @param courseInfo 入参      课程信息
     * @return 出参      成功或失败
     */
    public boolean add(CourseInfo courseInfo) throws Exception;

    /**
     * 查看详情功能
     *
     * @param courseID 入参      课程信息ID
     * @return 出参      课程信息
     */
    public CourseInfo detail(Long courseID) throws Exception;

    /**
     * 编辑功能
     *
     * @param courseInfo 入参    课程信息
     * @param courseID   入参    课程ID
     * @return 出参    成功或失败
     */
    public boolean edit(Long courseID, CourseInfo courseInfo) throws Exception;

    /**
     * 删除功能
     *
     * @param id 入参     课程ID
     * @return 出参      成功或失败
     */
    public boolean delete(Long id) throws Exception;

    /**
     * 分页条件查询功能
     *
     * @param page 入参     分页条件模型
     *                  每一页条数:
     *                  页码:
     *                  数据：（分页条件）
     * @return 出参     分页模型
     * 每页多少条数据
     * 总条数：
     * 页码：
     * 数据：（课程信息）
     */
    public Page<CourseInfo> query(Page<CourseInfo> page);

    /**
     * 启用课程功能
     *
     * @param id 课程ID
     * @return 成功或失败
     */
    public boolean start(Long id) throws Exception;

    /**
     * 停用课程功能
     *
     * @param id 课程ID
     * @return 成功或失败
     */
    public boolean stop(Long id) throws Exception;

    /**
     * 新增并启用课程功能
     *
     * @param courseInfo 课程信息
     * @return 成功或失败
     */
    public boolean addAndStart(CourseInfo courseInfo,Long id) throws Exception;


}
